package org.openrbac.rbac.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.openrbac.rbac.entity.Auth;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author bapie
* @description 针对表【auth(系统菜单)】的数据库操作Service
* @createDate 2024-04-03 15:37:15
*/
public interface AuthService extends IService<Auth> {

    /**
     * 通过ID获取权限
     * @param id 认证信息的唯一标识符
     * @return 返回对应ID的Auth对象，如果找不到则返回null
     */
    Auth getById(int id);



    //分页查询
    IPage<Auth> getPageAuths(long current, long size, String sort,String name,Boolean isHidden,String createTime);

    /**
     * 删除授权
     *
     * @param id 授权的ID，类型为Long。这是要删除的授权的唯一标识符。
     * @return 返回一个布尔值，如果删除成功则返回true，否则返回false。
     */
    boolean delAuth(List<Long> id);

    /**
     * 编辑授权
     *
     * @param auth 要编辑的授权对象，类型为Auth。
     * @return 返回一个布尔值，如果编辑成功则返回true，否则返回false。
     */
    boolean editAuth(Auth auth);

    /**
     * 添加授权
     *
     * @param auth 要添加的授权对象，类型为Auth。
     * @return 返回一个布尔值，如果添加成功则返回true，否则返回false。
     */
    boolean addAuth(Auth auth);

    List<Auth> findAuths(String username);

    /**
     * 获取动态路由
     * @param username 用户名
     * @return 返回一个Auth对象的列表，表示用户的路由信息。
     */
    List<Auth> getRouters(String web);

}
